渗透测试之主动侦察和漏洞扫描
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
微信公众号:计算机与网络安全
ID:Computer-network
回顾:渗透测试之被动侦察
侦察阶段是为了尽可能多地收集与目标有关的信息,这些信息用来帮助杀链的攻击实施。
几乎检测不到的被动侦察,可以产生大量关于目标组织及其用户的信息。
主动侦察是建立在开源的成果和被动侦察之上,并侧重于使用探测来确定到达目标的路径,暴露目标的攻击面(attack surface)。在一般情况下,复杂的系统有更大的攻击面,并且每个面都可被利用和再利用,以支持其他的攻击。
虽然主动侦察会产生更多的信息、更有用的信息,但是,由于与目标系统的相互作用,可能会被记录,并且可能会通过防火墙、入侵检测系统等保护设施触发报警。当对攻击者有用的数据增加时,被检测到的风险同样增加,如下图所示。
攻击数据与风险关系图
为了提高提供详细的主动侦察的有效性的信息,我们的重点将是使用隐形的、不易察觉的技术。
一、隐形扫描策略
被目标发现是主动侦察的最大风险。使用目标机器的时间、数据邮票、源IP地址及其他附加信息,目标可能识别出侵入侦察的来源。因此,采用隐形技术,可以将被发觉的概率降到最低。
当采用隐形技术侦察时,测试人员模拟黑客的行动需要做到以下几点:
伪装工具签名来逃避检测和触发警报。
将攻击隐藏于合法流量中。
修改攻击,隐藏其流量的来源和类型。
使用非标准的流量类型或加密来使攻击隐形。
隐形扫描技术包括或全部包含以下几个方面:
调整源IP栈和工具识别设置。
修改数据包的参数(nmap)。
使用代理的匿名网络(ProxyChains和Tor网络)。
(一)调整源IP栈和工具识别设置
在渗透测试(或攻击)开始测试之前,它必须保证禁用或关闭所有Kali不必要的服务。
例如,如果本地正在运行不是必需的DHCP守护进程,那么DHCP可能与目标系统交互,这种交互可能会被记录,并且发送警报到目标的管理员。
大多数测试人员还在测试系统上禁用IPv6。这将停止目标网络上的IPv6,并首先确保所有流量通过IPv4代理路由。禁用IPv6可以通过编辑/etc/sysctl.conf文件完成,文件中包括以下几行代码:
一些商业和开源工具(例如,Metasploit框架)用一个标识序列标记它们的数据包。虽然,这可能对测试后分析系统的事件日志很有用(由一个特定的测试工具发起的事件可以直接与系统的事件日志进行比较,用于确定网络侦测情况并响应攻击。),但是它也可能触发某些入侵检测系统。测试你的工具,用它来攻击一个实验系统,确定被标记的数据包,并且要么改变标签,要么小心使用工具。
识别标签有最简单的方法,使用工具在虚拟目标系统上创建新的应用,然后查看系统日志中与工具名称相关的记录。此外,使用Wireshark捕获攻击者和目标虚拟机之间的信息流,然后搜索抓包(packet capture)文件,寻找由测试工具产生的那些关键字(工具的名称、供应商、证书序列号等),也是一种有效的方法。
在Metasploit框架中的用户代理(UserAgent),可以通过修改http_form_field选项改变。在msfconsole提示下,使用auxiliary/fuzzers/http/http_form_field选择选项,然后设置一个新的用户代理,如下图所示。
设置新用户代理
用户代理被设定为谷歌的索引蜘蛛程序——Googlebot。这是一种常见的自动化应用程序,访问和索引网站,很少引起网站所有者的注意。
(二)修改数据包参数
主动侦察最常用的方法是对目标发动扫描——发送定义的数据包到目标,然后利用返回的数据包来获取信息。这种类型最常用的工具是网络映射器(Network Mapper,nmap)。
为了有效使用nmap,必须拥有root级别的权限。这是典型的应用程序操作的数据包,也是Kali默认以root级别启动的原因。
当试图减少检测,用一些隐形技术来避免检测并随后报警,包括以下内容:
测试之前确定扫描的目标,发送需要确定目标的最小数量的数据包。例如,如果你想确认一个虚拟主机的存在,首先需要确定80端口,这个基于Web服务的默认端口是开放的。
避免可能与目标系统连接的扫描,避免可能泄漏数据的扫描。不要ping目标,或使用同步(SYN)和非常规数据包扫描,如确认(ACK)、完成(FIN)和复位(RST)数据包。
随机化或欺骗分组设置,如源IP和端口地址,以及MAC地址。
调节定时以减缓目标端的包的到来。
通过包的分解或附加随机数据来改变数据包大小,以此混淆设备对数据包的检测。
例如,如果你想进行一次隐形扫描并且做最小化的侦测,可以使用以下nmap命令:
下表详细解释了前面的命令。
namp命令参数简表
总之,这些选项将创建一个非常缓慢的扫描,隐藏扫描源的真实身份。然而,如果数据包太不常用、修改太多,也可能吸引目标的注意;因此,许多测试者和攻击者利用匿名网络,尽量最小化侦测。
(三)使用匿名网络代理(Tor和Privoxy)
Tor是第三代洋葱路由(www.torproject.org),开源软件,提供免费接入的匿名网络代理。洋葱路由加密用户流量使网络匿名,并通过一系列的洋葱路由器发送匿名流量。在每一个路由器,解密加密信息,得到路由信息,然后在发送该消息到下一个节点。它被比喻为逐步剥除洋葱,故以此命名。它通过保护用户的IP流的源地址和目的地址,抵御流量分析的攻击。
在这个例子中,使用Tor的Privoxy代理服务器,一个非高速缓存的Web代理,位于与因特网通信的应用程序的中间,利用先进的过滤技术,保护用户隐私、移除广告,并将潜在的恶意数据发送给测试者。
安装Tor,请执行下列步骤:
1、首先执行apt-get update和apt-get update命令,然后运行下面的命令:
2、一旦安装了Tor,编辑位于/etc目录下的proxychains.conf文件。
该文件规定了使用在Tor网络系统上的测试系统使用代理服务器的数量和顺序。代理服务器可能停止工作,或者它们可能遇到重载荷(导致缓慢或潜连接);如果发生这种情况,该文件定义的proxychain将失效,因为预期链路正在消失。因此,禁止使用strict_chains,并且启用dynamic_chains,这就保证了连接将被路由,如下图所示。
编辑proxychains.conf文件
3、接下来,编辑[ProxyList]部分,以确保socks5代理存在,如下图所示。
编辑[ProxyList]
在网上很容易找到开放代理,并添加到proxychains文件中。测试人员可以利用这一优势,进一步模糊自己的身份。例如,如果有报道说某一个国家或社区的IP地址一直受到网络攻击,寻找本地的开放代理,并将它们添加到你的列表,或单独配置一个文件。
4、从终端窗口启动Tor服务,请输入以下命令:
5、使用下面的命令验证Tor已经启动:
6、验证Tor网络正在工作,并提供匿名连接是很重要的。首先确认你的源IP地址,从终端输入以下命令:
这将启动Iceweasel浏览器并打开一个网站,提供与网页连接的源IP地址。注意IP地址,然后,使用以下的proxychains命令调用Tor路由:
在此特定实例中,IP地址被确定为96.47.226.60。从终端窗口查询的IP地址表明,某个传播正在从Tor出口节点退出,如下图所示。
查询节点的截图
通过访问https://check.torproject.org,你也可以验证Tor的功能是否正常。
虽然通信使用Tor网络现在受到保护,但当你的系统使DNS请求提供你的身份到ISP时,DNS可能发生泄漏。你可以检查DNS漏洞,地址为:www.dnsleaktest.com。
当你测试一个DNS泄漏时,在美国Kali代理配置链的源IP地址默认值是一个3级通信(Level 3 Communications)服务器的地址,见下图。这提供了对测试者身份的额外保护。
DNS测试结果
大多数命令行可以在使用Proxychains访问Tor网络的控制平台上运行。
在使用Tor时,要牢记如下注意事项:
Tor提供匿名服务,但它不能保证隐私。出口节点的业主都能够嗅出流量,也有可能会访问用户的凭据。
在Tor浏览器套件中的漏洞,据称被执法部门用于探测系统并获取用户信息。
ProxyChains不处理UDP流量。
某些应用程序和服务无法在这样的环境下运行,实际上,Metasploit与nmap可能不能运行。nmap的隐身SYN扫描被proxychains终止,且连接扫描被调用时;这可能会泄漏信息。
某些浏览器的应用程序(ActiveX、PDF、Flash、Java、RealPlay和QuickTime),可能用于获取你的IP地址。
确保浏览之前清理了你的cookies。
Tor-Buddy脚本允许你控制Tor IP地址刷新频率,但是自动识别用户的信息非常困难。
二、识别网络基础设施
一旦测试者的身份已被保护,扫描网络关键的第一步就是确定在网络上的因特网可接入部分的装置。
攻击者和渗透测试人员使用这些信息来做到以下几点:
确定可能混淆设备(负载平衡器)或消除(防火墙和分组检查设备)测试结果。
识别已知漏洞的设备。
继续实施隐形扫描来识别设备。
获得目标的理解,重点是安全体系结构和一般安全。
跟踪路由(traceroute)提供了关于包过滤能力的基本信息;Kali的一些其他应用包括的内容如下表所示。
Kali的一些常见应用
下图显示的是运行在lbd脚本上的针对谷歌的结果;你可以看到,谷歌在它的网站上同时使用DNS–负载平衡与HTTP–负载平衡。从一个渗透测试者的角度来看,这些信息可以用来解释为什么得到的是杂散的结果,因为负载平衡器作为一个特定的工具,将活动从一个服务器转移到另一个。
针对Google的测试结果
三、枚举主机
主机枚举是获得特定主机的特定细节的过程。主机枚举不知道一个服务器或无线接入点的存在;相反,我们需要确定开放端口、基本操作系统、运行的各种服务、各种应用等内容,来不断扩大攻击面。
这具有高度的侵入性,除非特别小心,否则主动侦察将被目标系统检测到,并且作记录。
发现活动的主机
第一步是运行针对目标地址空间的网络ping扫描并寻找答复,特别的信息会表明一个特定的目标是活动的、有能力应答的。从历史经验看,ping侦测主要使用ICMP;当然,TCP、UDP、ICMP和ARP通信也可用于鉴定主机的活动情况。
各种扫描器可以通过Internet远程位置运行,用来确定主机的活动性。虽然主扫描器是nmap,但Kali提供的另外几种应用也是有用的,如下表所示。
Kali提供的几种扫描应用
对于渗透测试者或攻击者,从活动主机返回的数据,将用来确定活动目标为攻击目标。
进行渗透测试的同时,运行多个主机发现扫描。某些设备可能是时间相关的。在一次渗透测试中,发现系统管理员在正常工作时间结束后,建立了与游戏服务器的连接。因为游戏服务器不是一个经批准的商业系统,管理员没有按照正常的过程来保护服务器;在其上发现了多个脆弱的服务,它们并没有打上必要的安全补丁。测试人员能够攻击游戏服务器,在管理员的游戏服务器中,使用漏洞并获得企业网络的底层接入。
四、端口、操作系统和发现服务
Kali提供了几种不同的有用工具,用于识别远程主机上的开放端口、操作系统和安装的服务。这些功能大多可以使用nmap完成。尽管我们将专注于利用nmap的例子,但基本原则也适用于其他工具。
(一)端口扫描
端口扫描是连接到TCP和UDP端口,以确定何种服务、何种应用程序在目标设备上运行的过程。在每个系统上的TCP和UDP有65535个端口。某些端口已知与特定服务相关联(TCP 20和TCP 21是用于文件传输协议服务(FTP)的通用端口)。前1024个是众所周知的端口,并且主要定义的服务在此范围内的端口上运行;IANA保留了接受服务和其他端口。
虽然,对一些特定的服务存在接收端口,如80端口为基于网络的流量的接受端口,但是,服务可以直接使用任何端口。此选项通常用于隐藏特定的服务,特别是如果已知该服务是易受攻击的。然而,如果攻击者完成端口扫描,并没有找到一个预期的服务,或发现它使用了一个不寻常的端口,他们将被提示作进一步调查。
通用端口映射工具nmap依靠活动栈指纹。特制的数据包被发送到目标系统,nmap以操作系统对这些数据包的响应来识别这些操作系统。为了使nmap正常工作,至少须有一个监听端口是开放的,而操作系统必须是已知和有指纹的,还有,该指纹的副本必须在本地数据库。
将nmap用于端口发现是有很大的噪声的,将被网络安全设备检测并记录。要记住的几点如下:
攻击和渗透测试侧重于隐形技术,测试只注意测试的端口,那么,将影响他们锁定目标的杀链。如果他们已经发起了对Web服务器的漏洞的攻击,他们将寻求目标的80端口或8080端口进入访问。
大多数端口扫描器都有一个默认扫描列表,前提是相信你知道什么在名单上,什么被省略。同时考虑TCP端口和UDP端口。
成功的扫描需要TCP/IP及相关协议的深度知识、网络和一些工作的特殊工具。例如,SCTP是网络上一个越来越普遍的协议,但它在企业网络测试时,很少使用。
即使慢慢来,端口扫描也会影响网络。对一些较旧的网络设备,以及供应商的一些特定设备,在接收到端口扫描时会锁定,从而把扫描转换为一个拒绝服务攻击。
用来扫描一个端口的工具,尤其是nmap,正在扩展常规的功能。它们也可以用来检测漏洞,甚至利用简单的安全漏洞。
(二)指纹识别操作系统
确定远程系统的操作系统类型,使用两种类型的扫描:
主动指纹识别(Active fingerprinting):攻击者通过发送正常的和异常的数据包到目标系统,记录它们的反应模式,称其为指纹(fingerprint)。将指纹与本地数据库比较,操作系统可被确定。
被动指纹识别(Passive fingerprinting):攻击者嗅探,或记录和分析数据包流,以确定该分组的特性。
主动指纹比被动指纹更快、更准确。在Kali中,有两个主要的主动工具是nmap和xprobe2。
nmap工具注入数据包到目标网络,并分析它收到的响应。在图3.8中,-O标志命令nmap确定操作系统。因为它注入分组到目标,通过nmap的判定操作系统的精度是基于开放端口的数目。从UNIX系统区分Windows通常是有效的,但是它不能提供非常具体的信息,如各种UNIX的内核区分。下图显示了nmap对Windows系统的扫描结果。只有在目标系统上的几个端口可用于测试,所以无法区分Windows 7企业版和Windows XP SP3。
使用nmap–O的屏幕截图
一个相关的程序,xprobe2使不同的TCP、UDP和ICMP数据包绕过防火墙,避免被IDS/IPS系统检测。xprobe2还使用模糊模式匹配:未识别操作系统被确定为一种类型;相反,被分配为几个可能的变体之一。正如你在下图中看到的,这使得测试者能测试特定操作系统变种的漏洞;这种特殊性会增加成功的机会,并最大限度地减少使用错误工具可能发生的攻击错误。
减少错误
注意,对目标系统隐藏真实操作系统是简单的。因为指纹软件依赖于分组包设置,如生存时间或初始窗口大小,改变这些值或其他用户可配置的设置,可以改变工具的结果。有些组织积极改变这些值,使侦察的最后阶段更加困难。
(三)确定主动服务
侦察的枚举部分的最终目标是确定运行在目标系统上的服务和应用。如果可能的话,攻击者想知道服务类型、供应商、证书,便于确定具体的漏洞。
下面是用于确定主动服务的几种技术:
确定默认的端口和服务:如果远程系统被标识为微软操作系统打开服务端口80(WWW服务),攻击者可能会认为默认安装的是微软IIS服务器。进一步的测试将被用来验证这种假设(nmap)。
标志提取:完成该任务,使用amap、netcat、nmap和远程登录等工具。
审查默认网页:一些应用程序安装使用默认的管理、错误或其他页面。如果攻击者访问这些页面,他们会提供安装应用程序的指导,这可能是攻击的漏洞。在下图中,攻击者可以很容易地识别已经安装在目标系统上的Apache Tomcat的版本。
查看Apache Tomcat
审查源代码:配置不当的Web应用程序可能应答某些HTTP请求,如头部(HEAD)或选项(OPTIONS)的回应包括有Web服务器软件版本,或基本操作系统,或者使用的脚本环境。在下图中,netcat是从命令行启动的,并用于将原始HEAD数据包发送到特定网站。该请求将生成一个错误(找不到404)消息;然而,它也指出,该服务器正在运行微软的IIS,版本为7.5。
审查源代码
五、采用综合侦察应用
虽然Kali包含多个工具以促进侦察,许多工具包含相同的功能,但是将数据从一个工具导入另一个通常是一个复杂的手动过程。大多数测试者选择工具的一个子集,并使用脚本调用它们。
最初的综合侦察工具是命令行工具,附带一组定义的功能;其中,最常用的是DMitry工具(Deepmagic Information Gathering Tool)。DMitry可以执行whois查询、检索netcraft.com信息,搜索子域、电子邮件地址,并进行TCP扫描。不幸的是,除了这些功能,它是不可扩展的。
最新的进展创造了综合框架应用程序,结合了主动侦察和被动侦察。我们将回顾nmap、recon-ng和maltego。
(一)nmap
传统意义上,nmap被视为一个简单的映射工具,保障主机和端口上数据的可用性,以及一些额外的数据,例如目标设备的操作系统的一些可能的数据。
nmap脚本引擎(Nmap Scripting Engine,NSE),已经将nmap转变为一种工具,它可以进行被动和主动侦察,甚至执行基本的漏洞扫描(脚本的完整列表,请访问http://nmap.org/nsedoc/)。
因为写脚本使用的是Lua脚本语言,渗透测试团队很容易修改和释放脚本。目前,脚本功能包括以下内容:
IPv4和IPv6的DNS数据的侦察。
识别现在的Web应用程序:防火墙、IDS、IPS,以及其他保护控制。
测试防火墙规则(通过firewalk),并试图绕过防火墙。
从目标和在线网站收集用户名。
对各种服务和应用的蛮力密码猜解。
抓取目标网络来识别网络股。
从定义的网站图像中提取EXIF元数据。
IP地址的地理定位。
进行网络攻击,如IPv6报文泛洪。
漏洞扫描,包括模糊测试和SQL注入检测。
正如你所看到的,增强nmap脚本的能力,使用可扩展的语言,如Lua的脚本语言,对这个工具是非常重要的。
一个有用的脚本是Marc Ruef的vulscan(http://www.computec.ch/mruef/software/nmap_nse_vulscan-1.0.tar.gz),它结合了nmap的指纹特征(使用-sV标志)与主要查找的漏洞,如MITRE、OSVDB和SecurityFocus。
下载脚本包,解压文件,并且移动文件到usr/share/nmap/scripts。
为了从命令行调用一个脚本命令,使用--script标志,然后确定脚本的名称。使用下面的命令启动经常使用的一种脚本,nmap的一般漏洞扫描器:
这种特殊情况下,使用已知的侦测,漏洞扫描没有发现任何漏洞,如下图所示。
使用nmap-sv扫描
SpiderLabs脚本是一个必备脚本,它用于截图Web服务。它要求下载wkhtmltoimage工具(http://wkhtmltopdf.googlecode.com),并且放在/usr/local/bin目录中。应该下载截图脚本本身(https://github.com/spiderlabs/nmap-tools/blob/master/nse/http-screenshot.nse),并且放在/usr/local/share/nmap/scripts目录中。当调用时,该脚本会产生所有已识别的网络服务的可视化记录,使其更容易被选择出来,作为测试目标。
(二)recon-ng框架
recon-ng框架是进行(主动和被动)侦察的开源框架。
像Metasploit框架(Metasploit Framework)和社会工程师工具包(Social Engineer Toolkit)一样,recon-ng采用了模块化的框架。每个模块是一个定制的cmd解释,为执行特定任务作预配置。
recon-ng框架及其模块用Python编写的,为方便测试,允许渗透测试人员轻松地建立或改变模块。
recon-ng框架工具利用第三方API进行一些评估;这种额外的灵活性意味着通过recon-ng的主动性,可以跟踪那些当事人。用户可以自定义一个UserAgent字符串或代理请求,以尽量减少警报目标网络。
通过recon-ng收集的所有数据被放置在一个数据库中,使你能够创建针对存储数据的各种报告。用户可以选择报告模块中的任意一个来自动创建,可以是CVS报告,也可以是HTML报告。
使用recon,应执行以下步骤:
1、如果你的Kali版本没有安装recon-ng,请使用以下命令:
2、要启动应用程序,在提示符后输入recon-ng,如下图所示。初始屏幕将显示本模块的数量,并且帮助命令将显示可应用的命令。
使用recon-ng
3、要显示可用的模块,在类型提示符recon-ng>后输入show。要加载特定的模块,输入load,其后紧跟模块的名称。在输入中,按下tab键会自动完成命令的输入。如果模块具有独特的名称,你可以输入名称的独特之处,模块载入将不加载完整路径。
输入info,见下图,将为你提供有关模块的工作原理,并在必要时获得API密钥。
使用info查看模块
4、一旦模块被加载,使用set命令设置选项,然后输入run来执行,如更好图所示。
使用set命令设置选项
总的来说,依靠recon-ng的测试需要做到以下几点:
使用whois、jigsaw、linkedin和twitter来获得连接(用损坏的模块提取、呈现电子邮件数据)。
识别主机。
使用hostop、ipinfodb、maxmind、uniapple和wigle识别主机和个人的地理位置。
使用netcraft及相关模块识别主机信息。
确定以前被攻击入侵过,在互联网上泄漏过的账户及其密码信息(pwnedlist模块、wascompanyhacked、xssed和punkspider)。
(三)Maltego
Maltego(www.paterva.com)是一个开源的智能、取证应用软件。社区版包括了设置搜索的大小限制的Kali;自然,这是一个很好的工具,数据挖掘和链接分析都实现了良好的可视化。
Maltego允许你列举个人信息、链接一个特定的人与公司、电子邮件地址、网站、社交网络团体和电话号码等。这也促进了whois信息、域名、DNS信息、IP地址和netblocks的被动和主动侦察。
1、打开应用程序,输入maltego作为一个命令提示符。你第一次打开它,就会要求你注册,并通过Paterva验证你的电子邮件地址。
2、一旦完成注册和变换更新,你将会看到一个多窗格的图形用户界面,在该界面中你可以检查各种数据对象之间的连接,如下图所示。
Maltego用户界面
Maltego是依赖于一系列变换或模块,存储在应用程序的左侧面板。变换的选择通过左边的列挑选它们,然后拖动到应用程序的中心。
默认情况下,图标pantera.com被当作初始选择,但是你可以使用右栏的数据操作区重命名和更改数据。
在社区版中存在几种不同的转换,这些被分为若干组,如设备(Devices)、基础设施(Infrastructure)、个人(Personal)、地点(Locations)、渗透测试(Penetration Testing)和社交网络(Social Networks),如下图所示。
不同的转换的截图
3、拖动适当变换到工作表,单击右键,将完成变换身份。请记住,如果你选择了所有选项,会需要大量的处理时间。
分析关系的能力对于执行社会工程攻击尤其有用。例如,如果目标网站包含多个到其他网站的链接,攻击者可以利用这种关系,进行网络钓鱼攻击。
六、漏洞扫描
漏洞扫描采用自动化过程和自动化应用程序,以确定在网络、系统、操作系统或应用程序中可能利用的漏洞。
当执行正确时,一个漏洞扫描装置提供一个设备清单(授权和恶意设备),已经主动扫描已知的漏洞,通常还会提供一个确认的符合该设备的各种政策和法规的说明。
不幸的是,漏洞扫描提供一些容易被大多数网络控制检测到的噪声——多分数据包,隐形几乎不可能实现。它们还遭受以下附加的限制:
在大多数情况下,漏洞扫描器是基于签名的,它们只能检测已知的漏洞,且仅当有一个已经存在的识别标志——该扫描仪可以应用于目标。对一个渗透测试者,最有效的扫描软件是开源的,允许测试人员快速修改代码来检测新的漏洞。
扫描器产生大量的输出,通常包含错误结果,可能导致测试人员误入歧途;特别是,不同的网络操作系统,产生的不正确信息的比率高达70%左右。
扫描器可能对网络有负面影响,他们可以创建网络延迟或导致某些设备的失效(参照网络扫描列表(Network Scanning Watch List),网址为www.digininja.org,其中列出了漏洞测试引起的已知失效的设备)。
在某些控制区,扫描被认为是黑客攻击,并可能构成违法行为。
七、结语
在主动侦察中,攻击者的活动被真正发现的机会极大,使他们处于危险之中。攻击者在映射的网络中,找到开放端口,并确定已安装的操作系统和应用程序。
为了降低风险,攻击者采用隐形扫描技术。手动方法被用来创建慢扫描;然而,这种方法并不总是有效的。因此,攻击者利用工具,如Tor网络以及各种代理应用程序来隐藏自己的身份。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】